home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 February / EnigmA AMIGA RUN 04 (1996)(G.R. Edizioni)(IT)[!][issue 1996-02][Skylink CD III].iso / earcd / comm2 / termsorc.lha / Extras / Source / term-source.lha / ModemPanel.c < prev    next >
C/C++ Source or Header  |  1995-09-26  |  14KB  |  589 lines

  1. /*
  2. **    ModemPanel.c
  3. **
  4. **    Editing panel for modem configuration
  5. **
  6. **    Copyright © 1990-1995 by Olaf `Olsen' Barthel
  7. **        All Rights Reserved
  8. */
  9.  
  10. #include "termGlobal.h"
  11.  
  12. enum    {    GAD_LIMIT_MACRO=1000,GAD_DIAL_PREFIX,GAD_DIAL_SUFFIX,
  13.         GAD_DIAL_MODE,GAD_USE,GAD_CANCEL,GAD_DEFAULT,
  14.         GAD_PAGER,GAD_PAGEGROUP,GAD_INTER_DIAL_DELAY,
  15.         GAD_PBX_PREFIX,GAD_PBX
  16.     };
  17.  
  18. STATIC UBYTE * __saveds
  19. ShowDialRetries(struct Gadget *SomeGadget,WORD Level)
  20. {
  21.     if(Level < 0)
  22.         return(LocaleString(MSG_DIAL_RETRIES_UNLIMITED_TXT));
  23.     else
  24.     {
  25.         STATIC UBYTE __far Buffer[10];
  26.  
  27.         SPrintf(Buffer,"%ld",Level);
  28.  
  29.         return(Buffer);
  30.     }
  31. }
  32.  
  33. STATIC UBYTE * __saveds
  34. ShowHours(struct Gadget *SomeGadget,WORD Level)
  35. {
  36.     STATIC UBYTE __far Buffer[15];
  37.  
  38.     SPrintf(Buffer,LocaleString(MSG_GLOBAL_SHOW_HOURS_TXT),Level / 60,Level % 60);
  39.  
  40.     return(Buffer);
  41. }
  42.  
  43. STATIC UBYTE * __saveds
  44. ShowSeconds(struct Gadget *SomeGadget,WORD Level)
  45. {
  46.     STATIC UBYTE __far Buffer[15];
  47.  
  48.     SPrintf(Buffer,LocaleString(MSG_GLOBAL_SHOW_MINUTES_TXT),Level / 60,Level % 60);
  49.  
  50.     return(Buffer);
  51. }
  52.  
  53. BYTE __regargs
  54. ModemPanel(struct Configuration *LocalConfig,BYTE *Default)
  55. {
  56.     STATIC LONG PageTitleID[7] =
  57.     {
  58.         MSG_V36_0110,
  59.         MSG_V36_0111,
  60.         MSG_DIALCOMMANDS_TXT,
  61.         MSG_V36_0112,
  62.         MSG_V36_0116,
  63.         MSG_V36_0118,
  64.         -1
  65.     };
  66.  
  67.     STATIC BYTE InitialPage = 0;
  68.  
  69.     struct LayoutHandle    *Handle;
  70.     BYTE             Cancel = FALSE;
  71.  
  72.     SaveConfig(LocalConfig,PrivateConfig);
  73.  
  74.     if(Handle = LT_CreateHandleTags(Window -> WScreen,
  75.         LH_LocaleHook,    &LocaleHook,
  76.         LH_ExitFlush,    FALSE,
  77.     TAG_DONE))
  78.     {
  79.         struct Window *PanelWindow;
  80.  
  81.         LT_New(Handle,
  82.             LA_Type,    VERTICAL_KIND,
  83.         TAG_DONE);
  84.         {
  85.             LT_New(Handle,
  86.                 LA_Type,VERTICAL_KIND,
  87.             TAG_DONE);
  88.             {
  89.                 LT_New(Handle,
  90.                     LA_Type,    TAB_KIND,
  91.                     LA_ID,        GAD_PAGER,
  92.                     LA_LabelID,    MSG_XFER_PAGE_TXT,
  93.                     LACY_LabelTable,PageTitleID,
  94.                     LACY_AutoPageID,GAD_PAGEGROUP,
  95.                     LACY_TabKey,    TRUE,
  96.                     LA_BYTE,    &InitialPage,
  97.                     LATB_FullWidth,    TRUE,
  98.                 TAG_DONE);
  99.  
  100.                 LT_EndGroup(Handle);
  101.             }
  102.  
  103.             LT_New(Handle,
  104.                 LA_Type,    VERTICAL_KIND,
  105.                 LA_ID,        GAD_PAGEGROUP,
  106.                 LAGR_ActivePage,InitialPage,
  107.             TAG_DONE);
  108.             {
  109.                 LT_New(Handle,
  110.                     LA_Type,    VERTICAL_KIND,
  111.                 TAG_DONE);
  112.                 {
  113.                     LT_New(Handle,
  114.                         LA_Type,    STRING_KIND,
  115.                         LA_LabelID,    MSG_MODEMPANEL_MODEM_INIT_STRING_GAD,
  116.                         LA_STRPTR,    LocalConfig -> ModemConfig -> ModemInit,
  117.                         LA_Chars,    20,
  118.                         GTST_MaxChars,    79,
  119.                     TAG_DONE);
  120.  
  121.                     LT_New(Handle,
  122.                         LA_Type,    STRING_KIND,
  123.                         LA_LabelID,    MSG_MODEMPANEL_MODEM_EXIT_STRING_GAD,
  124.                         LA_STRPTR,    LocalConfig -> ModemConfig -> ModemExit,
  125.                         GTST_MaxChars,    79,
  126.                     TAG_DONE);
  127.  
  128.                     LT_New(Handle,
  129.                         LA_Type,    STRING_KIND,
  130.                         LA_LabelID,    MSG_MODEMPANEL_MODEM_HANGUP_STRING_GAD,
  131.                         LA_STRPTR,    LocalConfig -> ModemConfig -> ModemHangup,
  132.                         GTST_MaxChars,    79,
  133.                     TAG_DONE);
  134.  
  135.                     if(LocalConfig == Config)
  136.                     {
  137.                         LT_New(Handle,
  138.                             LA_Type,    CHECKBOX_KIND,
  139.                             LA_LabelID,    MSG_DO_NOT_SEND_MODEM_COMMANDS_TXT,
  140.                             LA_BYTE,    &LocalConfig -> ModemConfig -> DoNotSendMainModemCommands,
  141.                             LA_ExtraSpace,    TRUE,
  142.                         TAG_DONE);
  143.                     }
  144.  
  145.                     LT_New(Handle,
  146.                         LA_Type,    XBAR_KIND,
  147.                     TAG_DONE);
  148.  
  149.                     LT_New(Handle,
  150.                         LA_Type,        INTEGER_KIND,
  151.                         LA_LabelID,        MSG_COMMAND_SEND_DELAY_TXT,
  152.                         LA_LONG,        &LocalConfig -> ModemConfig -> CharSendDelay,
  153.                         LAIN_Min,        0,
  154.                         LAIN_UseIncrementers,    TRUE,
  155.                     TAG_DONE);
  156.  
  157.                     LT_EndGroup(Handle);
  158.                 }
  159.  
  160.                 LT_New(Handle,
  161.                     LA_Type,    VERTICAL_KIND,
  162.                 TAG_DONE);
  163.                 {
  164.                     LT_New(Handle,
  165.                         LA_Type,    STRING_KIND,
  166.                         LA_LabelID,    MSG_MODEMPANEL_NO_CARRIER_STRING_GAD,
  167.                         LA_STRPTR,    LocalConfig -> ModemConfig -> NoCarrier,
  168.                         LA_Chars,    20,
  169.                         GTST_MaxChars,    15,
  170.                     TAG_DONE);
  171.  
  172.                     LT_New(Handle,
  173.                         LA_Type,    STRING_KIND,
  174.                         LA_LabelID,    MSG_MODEMPANEL_NO_DIALTONE_STRING_GAD,
  175.                         LA_STRPTR,    LocalConfig -> ModemConfig -> NoDialTone,
  176.                         GTST_MaxChars,    15,
  177.                     TAG_DONE);
  178.  
  179.                     LT_New(Handle,
  180.                         LA_Type,    STRING_KIND,
  181.                         LA_LabelID,    MSG_MODEMPANEL_CONNECT_STRING_GAD,
  182.                         LA_STRPTR,    LocalConfig -> ModemConfig -> Connect,
  183.                         GTST_MaxChars,    15,
  184.                     TAG_DONE);
  185.  
  186.                     LT_New(Handle,
  187.                         LA_Type,    STRING_KIND,
  188.                         LA_LabelID,    MSG_MODEMPANEL_VOICE_STRING_GAD,
  189.                         LA_STRPTR,    LocalConfig -> ModemConfig -> Voice,
  190.                         GTST_MaxChars,    15,
  191.                     TAG_DONE);
  192.  
  193.                     LT_New(Handle,
  194.                         LA_Type,    STRING_KIND,
  195.                         LA_LabelID,    MSG_MODEMPANEL_RING_STRING_GAD,
  196.                         LA_STRPTR,    LocalConfig -> ModemConfig -> Ring,
  197.                         GTST_MaxChars,    15,
  198.                     TAG_DONE);
  199.  
  200.                     LT_New(Handle,
  201.                         LA_Type,    STRING_KIND,
  202.                         LA_LabelID,    MSG_MODEMPANEL_BUSY_STRING_GAD,
  203.                         LA_STRPTR,    LocalConfig -> ModemConfig -> Busy,
  204.                         GTST_MaxChars,    15,
  205.                     TAG_DONE);
  206.  
  207.                     LT_New(Handle,
  208.                         LA_Type,    STRING_KIND,
  209.                         LA_LabelID,    MSG_MODEMPANEL_OK_STRING_GAD,
  210.                         LA_STRPTR,    LocalConfig -> ModemConfig -> Ok,
  211.                         GTST_MaxChars,    15,
  212.                     TAG_DONE);
  213.  
  214.                     LT_New(Handle,
  215.                         LA_Type,    STRING_KIND,
  216.                         LA_LabelID,    MSG_MODEMPANEL_ERROR_STRING_GAD,
  217.                         LA_STRPTR,    LocalConfig -> ModemConfig -> Error,
  218.                         GTST_MaxChars,    15,
  219.                     TAG_DONE);
  220.  
  221.                     LT_EndGroup(Handle);
  222.                 }
  223.  
  224.                 LT_New(Handle,
  225.                     LA_Type,    VERTICAL_KIND,
  226.                 TAG_DONE);
  227.                 {
  228.                     BOOL NotFound = TRUE;
  229.                     WORD i;
  230.  
  231.                     for(i = 0 ; NotFound && i < strlen(LocalConfig -> ModemConfig -> DialPrefix) - 1 ; i++)
  232.                     {
  233.                         if(LocalConfig -> ModemConfig -> DialPrefix[i] == '\\' && ToUpper(LocalConfig -> ModemConfig -> DialPrefix[i + 1]) == 'W')
  234.                             NotFound = FALSE;
  235.                     }
  236.  
  237.                     for(i = 0 ; NotFound && i < strlen(LocalConfig -> ModemConfig -> DialSuffix) - 1 ; i++)
  238.                     {
  239.                         if(LocalConfig -> ModemConfig -> DialSuffix[i] == '\\' && ToUpper(LocalConfig -> ModemConfig -> DialSuffix[i + 1]) == 'W')
  240.                             NotFound = FALSE;
  241.                     }
  242.  
  243.                     LT_New(Handle,
  244.                         LA_Type,    STRING_KIND,
  245.                         LA_LabelID,    MSG_MODEMPANEL_DIAL_PREFIX_GAD,
  246.                         LA_STRPTR,    LocalConfig -> ModemConfig -> DialPrefix,
  247.                         LA_Chars,    20,
  248.                         LA_ID,        GAD_DIAL_PREFIX,
  249.                         GTST_MaxChars,    79,
  250.                     TAG_DONE);
  251.  
  252.                     LT_New(Handle,
  253.                         LA_Type,    STRING_KIND,
  254.                         LA_LabelID,    MSG_MODEMPANEL_DIAL_SUFFIX_GAD,
  255.                         LA_STRPTR,    LocalConfig -> ModemConfig -> DialSuffix,
  256.                         LA_ID,        GAD_DIAL_SUFFIX,
  257.                         GTST_MaxChars,    79,
  258.                     TAG_DONE);
  259.  
  260.                     LT_New(Handle,
  261.                         LA_Type,    CYCLE_KIND,
  262.                         LA_LabelID,    MSG_DIALMODE2_GAD,
  263.                         LA_BYTE,    &LocalConfig -> ModemConfig -> DialMode,
  264.                         LA_ID,        GAD_DIAL_MODE,
  265.                         LACY_FirstLabel,MSG_DIALMODE1_TXT,
  266.                         LACY_LastLabel,    MSG_DIALMODE2_TXT,
  267.                         GA_Disabled,    NotFound,
  268.                     TAG_DONE);
  269.  
  270.                     LT_New(Handle,
  271.                         LA_Type,    STRING_KIND,
  272.                         LA_LabelID,    MSG_PBX_DIAL_PREFIX_TXT,
  273.                         LA_STRPTR,    LocalConfig -> ModemConfig -> PBX_Prefix,
  274.                         LA_ID,        GAD_PBX_PREFIX,
  275.                         GTST_MaxChars,    79,
  276.                         LA_ExtraSpace,    TRUE,
  277.                     TAG_DONE);
  278.  
  279.                     LT_New(Handle,
  280.                         LA_Type,    CHECKBOX_KIND,
  281.                         LA_LabelID,    MSG_PBX_DIAL_MODE_TXT,
  282.                         LA_BYTE,    &LocalConfig -> ModemConfig -> PBX_Mode,
  283.                     TAG_DONE);
  284.  
  285.                     LT_EndGroup(Handle);
  286.                 }
  287.  
  288.                 LT_New(Handle,
  289.                     LA_Type,    VERTICAL_KIND,
  290.                 TAG_DONE);
  291.                 {
  292.                     LT_New(Handle,
  293.                         LA_Type,        SliderType,
  294.                         LA_LabelID,        MSG_MODEMPANEL_REDIAL_DELAY_GAD,
  295.                         LA_LONG,        &LocalConfig -> ModemConfig -> RedialDelay,
  296.                         GTSL_Min,        0,
  297.                         GTSL_Max,        60 * 60,
  298.                         GTSL_DispFunc,        ShowSeconds,
  299.                         GTSL_LevelFormat,    "%s",
  300.                     TAG_DONE);
  301.  
  302.                     LT_New(Handle,
  303.                         LA_Type,        SliderType,
  304.                         LA_LabelID,        MSG_MODEMPANEL_DIAL_RETRIES_GAD,
  305.                         LA_LONG,        &LocalConfig -> ModemConfig -> DialRetries,
  306.                         GTSL_DispFunc,        ShowDialRetries,
  307.                         GTSL_Min,        -1,
  308.                         GTSL_Max,        1000,
  309.                         GTSL_LevelFormat,    "%s",
  310.                     TAG_DONE);
  311.  
  312.                     LT_New(Handle,
  313.                         LA_Type,        SliderType,
  314.                         LA_LabelID,        MSG_MODEMPANEL_DIAL_TIMEOUT_GAD,
  315.                         LA_LONG,        &LocalConfig -> ModemConfig -> DialTimeout,
  316.                         GTSL_Min,        0,
  317.                         GTSL_Max,        1800,
  318.                         GTSL_DispFunc,        ShowSeconds,
  319.                         GTSL_LevelFormat,    "%s",
  320.                     TAG_DONE);
  321.  
  322.                     LT_New(Handle,
  323.                         LA_Type,        SliderType,
  324.                         LA_LabelID,        MSG_INTER_DIAL_DELAY_TXT,
  325.                         LA_LONG,        &LocalConfig -> ModemConfig -> InterDialDelay,
  326.                         GTSL_Min,        0,
  327.                         GTSL_Max,        1800,
  328.                         GTSL_DispFunc,        ShowSeconds,
  329.                         GTSL_LevelFormat,    "%s",
  330.                     TAG_DONE);
  331.  
  332.                     LT_New(Handle,
  333.                         LA_Type,        CHECKBOX_KIND,
  334.                         LA_LabelID,        MSG_VERBOSE_DIALING_TXT,
  335.                         LA_BYTE,        &LocalConfig -> ModemConfig -> VerboseDialing,
  336.                     TAG_DONE);
  337.  
  338.                     LT_New(Handle,
  339.                         LA_Type,        CHECKBOX_KIND,
  340.                         LA_LabelID,        MSG_MODEMPANEL_NOCARRIER_IS_BUSY_GAD,
  341.                         LA_BYTE,        &LocalConfig -> ModemConfig -> NoCarrierIsBusy,
  342.                     TAG_DONE);
  343.  
  344.                     LT_New(Handle,
  345.                         LA_Type,        XBAR_KIND,
  346.                     TAG_DONE);
  347.  
  348.                     LT_New(Handle,
  349.                         LA_Type,        CHECKBOX_KIND,
  350.                         LA_LabelID,        MSG_MODEMPANEL_CONNECT_AUTO_BAUD_GAD,
  351.                         LA_BYTE,        &LocalConfig -> ModemConfig -> ConnectAutoBaud,
  352.                     TAG_DONE);
  353.  
  354.                     LT_New(Handle,
  355.                         LA_Type,        CHECKBOX_KIND,
  356.                         LA_LabelID,        MSG_MODEMPANEL_ABORT_HANGS_UP_TXT,
  357.                         LA_BYTE,        &LocalConfig -> ModemConfig -> AbortHangsUp,
  358.                     TAG_DONE);
  359.  
  360.                     LT_New(Handle,
  361.                         LA_Type,        SliderType,
  362.                         LA_LabelID,        MSG_MODEMPANEL_TIME_TO_CONNECT_GAD,
  363.                         LA_LONG,        &LocalConfig -> ModemConfig -> TimeToConnect,
  364.                         LA_Chars,        8,
  365.                         GTSL_Min,        0,
  366.                         GTSL_Max,        60 * 60,
  367.                         GTSL_DispFunc,        ShowSeconds,
  368.                         GTSL_LevelFormat,    "%s",
  369.                     TAG_DONE);
  370.  
  371.                     LT_EndGroup(Handle);
  372.                 }
  373.  
  374.                 LT_New(Handle,
  375.                     LA_Type,    VERTICAL_KIND,
  376.                 TAG_DONE);
  377.                 {
  378.                     LT_New(Handle,
  379.                         LA_Type,        CHECKBOX_KIND,
  380.                         LA_LabelID,        MSG_MODEMPANEL_DROP_DTR_ON_HANGUP_GAD,
  381.                         LA_BYTE,        &LocalConfig -> ModemConfig -> DropDTR,
  382.                     TAG_DONE);
  383.  
  384.                     LT_New(Handle,
  385.                         LA_Type,        CHECKBOX_KIND,
  386.                         LA_LabelID,        MSG_MODEMPANEL_REDIAL_AFTER_HANGUP_GAD,
  387.                         LA_BYTE,        &LocalConfig -> ModemConfig -> RedialAfterHangup,
  388.                     TAG_DONE);
  389.  
  390.                     LT_EndGroup(Handle);
  391.                 }
  392.  
  393.                 LT_New(Handle,
  394.                     LA_Type,    VERTICAL_KIND,
  395.                 TAG_DONE);
  396.                 {
  397.                     LT_New(Handle,
  398.                         LA_Type,        SliderType,
  399.                         LA_LabelID,        MSG_MODEMPANEL_CONNECTION_LIMIT_GAD,
  400.                         LA_WORD,        &LocalConfig -> ModemConfig -> ConnectLimit,
  401.                         GTSL_Min,        0,
  402.                         GTSL_Max,        1440,
  403.                         GTSL_DispFunc,        ShowHours,
  404.                         GTSL_LevelFormat,    "%s",
  405.                     TAG_DONE);
  406.  
  407.                     LT_New(Handle,
  408.                         LA_Type,        STRING_KIND,
  409.                         LA_LabelID,        MSG_MODEMPANEL_LIMIT_MACRO_GAD,
  410.                         LA_STRPTR,        LocalConfig -> ModemConfig -> ConnectLimitMacro,
  411.                         LA_Chars,        20,
  412.                         LA_ID,            GAD_LIMIT_MACRO,
  413.                         GTST_MaxChars,        MAX_FILENAME_LENGTH - 1,
  414.                     TAG_DONE);
  415.  
  416.                     LT_EndGroup(Handle);
  417.                 }
  418.  
  419.                 LT_EndGroup(Handle);
  420.             }
  421.  
  422.             LT_New(Handle,
  423.                 LA_Type,    VERTICAL_KIND,
  424.             TAG_DONE);
  425.             {
  426.                 LT_New(Handle,LA_Type,XBAR_KIND,LAXB_FullSize,TRUE,TAG_DONE);
  427.  
  428.                 LT_EndGroup(Handle);
  429.             }
  430.  
  431.             LT_New(Handle,LA_Type,HORIZONTAL_KIND,
  432.                 LAGR_SameSize,    TRUE,
  433.                 LAGR_Spread,    TRUE,
  434.             TAG_DONE);
  435.             {
  436.                 LT_New(Handle,
  437.                     LA_Type,    BUTTON_KIND,
  438.                     LA_LabelID,    MSG_GLOBAL_USE_GAD,
  439.                     LA_ID,        GAD_USE,
  440.                     LABT_ReturnKey,    TRUE,
  441.                     LABT_ExtraFat,    TRUE,
  442.                 TAG_DONE);
  443.  
  444.                 if(Default)
  445.                 {
  446.                     LT_New(Handle,
  447.                         LA_Type,    BUTTON_KIND,
  448.                         LA_LabelID,    MSG_GLOBAL_DEFAULT_GAD,
  449.                         LA_ID,        GAD_DEFAULT,
  450.                         LABT_ExtraFat,    TRUE,
  451.                     TAG_DONE);
  452.                 }
  453.  
  454.                 LT_New(Handle,
  455.                     LA_Type,    BUTTON_KIND,
  456.                     LA_LabelID,    MSG_GLOBAL_CANCEL_GAD,
  457.                     LA_ID,        GAD_CANCEL,
  458.                     LABT_EscKey,    TRUE,
  459.                     LABT_ExtraFat,    TRUE,
  460.                 TAG_DONE);
  461.  
  462.                 LT_EndGroup(Handle);
  463.             }
  464.  
  465.             LT_EndGroup(Handle);
  466.         }
  467.  
  468.         if(PanelWindow = LT_Build(Handle,
  469.             LAWN_TitleID,        MSG_MODEMPANEL_MODEM_PREFERENCES_TXT,
  470.             LAWN_IDCMP,        IDCMP_CLOSEWINDOW,
  471.             LAWN_HelpHook,        &GuideHook,
  472.             LAWN_Parent,        Window,
  473.             WA_DepthGadget,        TRUE,
  474.             WA_CloseGadget,        TRUE,
  475.             WA_DragBar,        TRUE,
  476.             WA_RMBTrap,        TRUE,
  477.             WA_Activate,        TRUE,
  478.             WA_SimpleRefresh,    TRUE,
  479.         TAG_DONE))
  480.         {
  481.             struct IntuiMessage    *Message;
  482.             BOOLEAN             Done = FALSE;
  483.             ULONG             MsgClass;
  484.             struct Gadget        *MsgGadget;
  485.             WORD             i;
  486.             BOOL             NotFound;
  487.  
  488.             GuideContext(CONTEXT_MODEM);
  489.  
  490.             PushWindow(PanelWindow);
  491.  
  492.             LT_ShowWindow(Handle,TRUE);
  493.  
  494.             do
  495.             {
  496.                 if(Wait(PORTMASK(PanelWindow -> UserPort) | SIG_BREAK) & SIG_BREAK)
  497.                 {
  498.                     SaveConfig(PrivateConfig,LocalConfig);
  499.  
  500.                     break;
  501.                 }
  502.  
  503.                 while(Message = (struct IntuiMessage *)LT_GetIMsg(Handle))
  504.                 {
  505.                     MsgClass    = Message -> Class;
  506.                     MsgGadget    = (struct Gadget *)Message -> IAddress;
  507.  
  508.                     LT_ReplyIMsg(Message);
  509.  
  510.                     if(MsgClass == IDCMP_CLOSEWINDOW)
  511.                     {
  512.                         SaveConfig(PrivateConfig,LocalConfig);
  513.  
  514.                         Done = TRUE;
  515.                     }
  516.  
  517.                     if(MsgClass == IDCMP_GADGETUP)
  518.                     {
  519.                         switch(MsgGadget -> GadgetID)
  520.                         {
  521.                             case GAD_DIAL_PREFIX:
  522.                             case GAD_DIAL_SUFFIX:
  523.                             case GAD_DIAL_MODE:
  524.  
  525.                                 for(i = 0, NotFound = TRUE ; NotFound && i < strlen(LocalConfig -> ModemConfig -> DialPrefix) - 1 ; i++)
  526.                                 {
  527.                                     if(LocalConfig -> ModemConfig -> DialPrefix[i] == '\\' && ToUpper(LocalConfig -> ModemConfig -> DialPrefix[i + 1]) == 'W')
  528.                                         NotFound = FALSE;
  529.                                 }
  530.  
  531.                                 for(i = 0 ; NotFound && i < strlen(LocalConfig -> ModemConfig -> DialSuffix) - 1 ; i++)
  532.                                 {
  533.                                     if(LocalConfig -> ModemConfig -> DialSuffix[i] == '\\' && ToUpper(LocalConfig -> ModemConfig -> DialSuffix[i + 1]) == 'W')
  534.                                         NotFound = FALSE;
  535.                                 }
  536.  
  537.                                 LT_SetAttributes(Handle,GAD_DIAL_MODE,
  538.                                     GA_Disabled,NotFound,
  539.                                 TAG_DONE);
  540.  
  541.                                 break;
  542.  
  543.                             case GAD_USE:
  544.  
  545.                                 LT_UpdateStrings(Handle);
  546.  
  547.                                 Done = TRUE;
  548.                                 break;
  549.  
  550.                             case GAD_CANCEL:
  551.  
  552.                                 SaveConfig(PrivateConfig,LocalConfig);
  553.  
  554.                                 Cancel = Done = TRUE;
  555.                                 break;
  556.  
  557.                             case GAD_DEFAULT:
  558.  
  559.                                 *Default = TRUE;
  560.  
  561.                                 Done = TRUE;
  562.                                 break;
  563.                         }
  564.                     }
  565.                 }
  566.             }
  567.             while(!Done);
  568.  
  569.             PopWindow();
  570.         }
  571.  
  572.         LT_DeleteHandle(Handle);
  573.     }
  574.  
  575.     if(!Cancel && LocalConfig -> MiscConfig && LocalConfig -> SerialConfig)
  576.     {
  577.         if(LocalConfig -> MiscConfig -> ProtectiveMode && LocalConfig -> SerialConfig -> BaudRate >= 4800 && LocalConfig -> ModemConfig -> ConnectAutoBaud)
  578.         {
  579.             if(MyEasyRequest(Window,LocaleString(MSG_AUTOBAUD_TXT),LocaleString(MSG_GLOBAL_YES_NO_TXT)))
  580.                 LocalConfig -> ModemConfig -> ConnectAutoBaud = FALSE;
  581.         }
  582.     }
  583.  
  584.     if(Default)
  585.         return((BYTE)(!Cancel));
  586.     else
  587.         return((BYTE)memcmp(PrivateConfig -> ModemConfig,LocalConfig -> ModemConfig,sizeof(struct ModemSettings)));
  588. }
  589.